package com.example.provider.config;

import com.example.provider.controller.UserController;
import org.springframework.boot.actuate.health.Health;
import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.boot.actuate.health.Status;
import org.springframework.context.annotation.Configuration;

/*http://localhost:10001/actuator/health 检测当前工程状态*/
//做健康检测的类
@Configuration //标志是一个配置文件
public class ProviderHealthIndicator implements HealthIndicator {
    /*** 我们可以在 health 方法里面去连接数据库，如果连接异常了 则返回 DOWN，
     * 如果没异常则 * 方法 UP，这个 health 方法是线程去调的，隔一段时间掉一 次 * @return */
    @Override
    public Health health() {
        if (UserController.canVisitable) {
            return new Health.Builder(Status.UP).build();
        } else {
            System.out.println("我准备挂掉了......");
            return new Health.Builder(Status.DOWN).build();
        }
    }
}
